----------------------------------------------------------------------------
               X68000用プログラムをWin95/98/NT/2000で動かす

                      run68.exe　Version 0.08

                      originally programmed by Ｙｏｋｋｏ
                      maintained by M. Beppu, Y. Fujii

＜＜目次＞＞
  1. 主な変更点
　2. 動作環境
　3. 使用法
　4. run68.iniについて
　5. run68w.exeについて
　6. 動かないプログラム
　7. 無保証
　8. 開発ツール
  9. 協力のお願い
　10.連絡先
　11.履歴
　付録．動作状況が確認されているプログラム
----------------------------------------------------------------------------

　X68000用の一部のプログラムを、Win32 API を備えた x86 PC 上で動かすソフトで
す。現在の所、95％程度のMC68000の命令と、75％程度のDOSCALL、20％のFLOATファ
ンクションコールをサポートしています。


【1.主な変更点】

  Version0.07からVersion0.08の主な変更点を以下に示します。

   ・シフト演算関連を完全実装

     僅かに対応していない命令は以下のものだけです。多分 (^^;

                   表1 - 対応していない命令
                +---------------------------+
                | bcd演算                   |
                | addx.{b|w|l} -(an), -(an) |
                | subx.{b|w|l} -(an), -(an) |
                | rtr / trapv / chk         |
                | 一部の特権命令            |
                +---------------------------+

   ・movem to reg の PC 相対アドレッシングでの実効アドレスが、2 小さい値を示
     すのを修正。

   ・DOSコール NFiles を修正
     これにより、rune、dash等のシェルが何とか動くようになりました。

   ・move to reg の PC相対アドレッシングモードの不具合解消。
     lzxなどが動くようになりました。

【2.動作環境】

　i386以上のCPUを搭載するPC/ATおよびその互換機上で動作するWindows95/98/NT/2000の、
DOSプロンプト or MS-DOSモード上で動作します。PC98シリーズ上では動作確認を行って
おりません。

　Version 0.07からロングファイルネームに対応しました。Win32がサポートする
最大512文字までのフルパス名が利用可能です。ただし、アプリケーションプログラム側
が対応していないような長いパス名を使用すると、実行時エラーになります。


【3.使用法】

   run68 {オプション} 実行ファイル名 [コマンドライン]
    オプション:
　          -f         ファンクションコールトレース
            -debug     run68簡易デバッガ起動

　実行ファイル名の拡張子が".r"または".x"の場合は省略可能です。なお、X形式
のファイル以外は全てR形式とみなして動作します。プログラム以外のファイルを
指定しても実行しようとするので注意が必要です。
  run68はrun68.iniに記述された環境変数PATHに従って実行ファイルを検索し、
最初に見つかったファイルをロード・実行します。Windows環境のPATHとは関係
ありませんのでご注意ください。
　※Z形式プログラムは実行できません。

  run68簡易デバッガの使い方については、debugger.txtを参照してください。


【4.run68.iniについて】

　run68.exeと同じディレクトリにrun68.iniという名前のファイルを置く事により、
本ソフトの動作を制御できます。
　run68.iniの内容は以下の通りです。これを複数回記述できます。

　----- run68.ini ---
　[セクション名]
　キーワード
　…
　-------------------

　セクション名、キーワードの大文字小文字は区別されません。両方とも行頭から
書き始め、直後に改行を入れて下さい。

　セクション名には、run68予約済みのセクション名、若しくはキーワードが適用さ
れるプログラム名を指定します。たとえば、"[dis.x]"のように書きます。

  run68予約済みのセクション名としては次の２つがあります。

  all :         このセクション内のキーワードは、全てのプログラムに適用されま
                す（他のセクション名が最初に現れるまでは[all]セクションと解
                釈します）。

  environment : このセクション内の全てのキーワード（環境変数）が、全てのプロ
                グラムに渡されます。

　キーワードには、以下のいずれか若しくは環境変数（Environmentセクション内の
み）を指定します。

　EnvLower　　：環境変数を小文字に変換してプログラムに渡します。DOS/Win95では
　　　　　　　　環境変数は小文字で設定しても大文字に変換されてしまい、小文字
　　　　　　　　の環境変数を要求するdis.xが動かないために作成しました。

　MainMemory=n：確保するメモリをMB単位で指定します。nは1～12が指定できます。
　　※できるだけ２以上を指定する事をおすすめします。

  "[environment]" セクション内の環境変数は、「変数名{=値}」の形で一行に一変
数ずつ記述します。複数行にまたがって記述することはできません。


【5.run68w.exeについて】

  Version0.07からはrun68w.exeが無くなります。run68.exe自体が長いファイル名を
サポートします。


【6.動かないプログラム】

　動くプログラム自体が少ないのですが、その中でも以下のものは絶対に動作しま
せん。

　・SX-WINDOW用プログラム
　・BINDされたもの（COMMAND.X等）
　・一部の領域を除き、スーパーバイザ領域にアクセスするもの
　　（すなわち、グラフィックを使用するものはだめです）
　・FM音源、ADPCM音源を使用するもの
　・周辺機器を使用するもの（マウスを含む）
　・一部を除き、IOCSコールを使用するもの


【7.無保証】

　本ソフトは無保証です。使用した上で生じたいかなる損害についても、作者は責任
を負いません。


【8.開発ツール】

　本ソフトは、Microsoft Visual C++ ver5を用いて作成されました。
  CygnusSolusions社のCygwin gcc(version egcs-2.91.57/2.95.1)でもコンパイル
できることを確認しております。


【9.協力のお願い】

  本ソフトを用いて動作するX68000プログラムを増やすために、また、本ソフトの
バグを減らして快適にご利用いただくために、情報のご提供をお願いします。
  ご協力いただく方法は以下の3種類があると思います。

  (1)デバッグ済ソースのご提供
  (2)デバッグ情報のご提供
  (3)動作しないプログラム、あるいは異常動作の情報提供

  (1)が最も望ましいことは言うまでもありません。:-)
  本ソフトはオープンソースの考えに基づいて配布されます。どなたでもご自由に
ソースを改変していただけます。プログラムを改良された場合、それを還元して
いただけると非常に助かります。

  (2)は例えばrun68簡易デバッガを用いて得られたデバッグ情報をご提供いただく
場合などです。簡易デバッガを用いてバグの原因となったrun68の異常動作箇所を
つきとめていただき、その情報をお送りください。普通ここまでやられる方は、
ご自分でソースを直してしまわれるかも知れませんが。:-)

  (3)は、お手持ちのX68000プログラムでバスエラーが発生した場合など、
run68はデバッグモードに入り、実行した命令の履歴とレジスタの内容を出力
します。それらの内容をご提供ください。それだけの情報ではデバッグできない
場合があります。その場合には、更なる情報のご提供をお願いいたします。
また、そのプログラムがフリーソフトである場合など、プログラム自体をご提供
いただいても結構です。ダウンロード可能な場合にはそのURLをお教えください。

  ご協力いただける場合は、配布ドキュメントのbuginfo.txtの書式をご利用
いただき、下記連絡先までお知らせください。寄せられた情報はきちんと管理し、
我々のできる範囲で対応いたします。


【10.連絡先】

　Email：masamic@kke.co.jp or yfujii@kke.co.jp
　サポートホームページ -- http://pws.prserv.net/run68/


【11.履歴】

  ＜2000/02/03 version 0.08＞
   ・シフト演算関連を完全実装
   ・movem to reg の PC 相対アドレッシングでの実効アドレスが、2 小さい値を示
     すのを修正。
   ・DOSコール NFiles を修正
     これにより、rune、dash等のシェルが何とか動くようになりました。
   ・move to reg の PC相対アドレッシングモードの不具合解消。


  ＜1999/12/24 version 0.07＞
   ・MC68000の命令対応率を75%->95%に向上。
   ・Human68kファンクションコールをWin32APIでエミュレーション。
   ・簡易デバッガ機能を追加した。
   ・環境変数設定値をrun68.iniファイルから読込むようにした。

　＜97/05/23　Version 0.06＞
   ・DOSCALL CONCTRLのmode=0時、文字表示の後stdoutをフラッシュするようにした
　　　（jrogue.xで表示がおかしくなる事があるので）。

　＜97/01/25　Version 0.05＞
   ・tas命令を完全にサポートした。

　＜96/08/26　Version 0.04＞
   ・A系命令トラップベクタがフックされた場合、フック先に処理を飛ばすようにし
　　　た（今のところほとんど意味がないが）。
   ・zmusic.xのコンパイル（-Cオプション）が動くようになった。
   ・標準出力をリダイレクトした時、余計な改行コードが入っていたのを一部修正。
   ・子プロセスで実行した時、メモリ内容をクリアしなかったために、一部のプログ
　　　ラムが正しく動作しなかったのを修正。
   ・DOSCALL IOCTRLのmode=0において、Ver 0.03で余計な処理を入れて一部のプログ
　　　ラムが動かなくなっていたのを修正。

　＜96/07/20　Version 0.03＞
   ・DOSCALL EXECをサポートした。これにより、子プロセスを起動できるように
　　　なった。また、basic.xが外部関数を組み込んでも起動するようになった。
   ・DOSCALL VERNUMで、Ver 3.02を返すようにした。
   ・float2.x、gcc.x、jrogue.x、lzx.x、ztom.xが動くようになった。
   ・lzx.xで圧縮されたプログラムが動くようになった（圧縮しなくて動かないもの
　　　は当然動かないが）。
   ・DOSコール、FLOATファンクションコールのサポートを増やした。
   ・F系命令トラップベクタがフックされた場合、FLOATファンクションコールならば
　　　フック先に処理を飛ばすようにした。これによりfloat2.xが常駐している場合、
　　　そちらでFLOATファンクションコールを実行するようになった。
   ・run68.iniのキーワードに「MainMemory=n」を追加。
   ・DOSCALL PUTCHARで文字コードに0x0Aがきた時、復帰改行していたのを改行だけ
　　　を行うように修正。
   ・その他。

　＜96/07/03　Version 0.02＞
   ・Win95プログラムだとうまくいかない部分が出てきたので、32bitDOSプログラム
　　　に変えた。
   ・一部うまく動かない代わりに長いファイル名が使えるWin95用プログラム
　　　「run68w.exe」を別に作成した。
   ・aish.x、bup.x、lha.x、mic.x、tree.xが動くようになった。
   ・lha.xで作成した自己解凍ファイルが動くようになった。
   ・basic.x、where.xが一部動くようになった。
   ・run68.iniでプログラム毎の指定ができるようにした。
   ・FLOATファンクションコールをサポートするようにした（まだ30％程度）。
   ・MC68000の命令、DOSコールのサポートを増やした。
   ・bssセクションの内容を0保証するようにした。
   ・シフト系命令でソースオペランドがレジスタの時、そのレジスタの値がマイナス
　　　の場合に正しく動作しなかったのを修正。
   ・その他。

　＜96/06/23　Version 0.01＞
   ・初版


【付録．動作状況が確認されているプログラム】

  作者の方の敬称は省略させて頂きました。

　凡例）○:動作する。△:一部動作する。×:動作しない。-:未確認。

  ※なお、「動作する」場合でも、完全な動作を保証するものではありません。


  種別         名称       Version   著作権者・作者      0.06 0.07 0.08 備考
  ------------ ---------- --------- ------------------- ---- ---- ---- ---------------------------------------
  Human68k標準 basic.x    v1.00     SHARP/Hudson         -   ○   ○  使用できない命令がある。
  コマンド     basic.x    v2.02     SHARP/Hudson         ○   ○   ○  使用できない命令がある。
               command.x  v1.00     SHARP/Hudson         ○   △   △  dirコマンドなどが使えない。
               dump.x     v1.01     SHARP/Hudson         ○   ○   ○
               fc.x       v1.01     SHARP/Hudson         ○   ○   ○
               float2.x   v2.03     SHARP/Hudson         ○   -   -
               where.x    v1.01     SHARP/Hudson         △   △   △  ファイルがあっても見つからない。
               tree.x     v1.01     SHARP/Hudson         ○   △   ○
               ed.x       v1.00     SHARP/Hudson         -   ×   ×  「ファイ名の誤りです」として強制終了される。
  ------------ ---------- --------- ------------------- ---- ---- ---- ---------------------------------------
  フリーソフト adp2pcm.r  v1.02     GORRY.               ○   -   -
               aish.x     v1.12     H.Ogasawara (COR.)   ○   -   -
               avi2wav.x  v0.30     Ｙｏｋｋｏ           ○   -   -
               bmp2pic.x  v0.03     Arimac               ○   -   -
               bup.x      v1.2r2    K.Higashide          ○   -   -
               cha2bmp.x  v1.01     Ｙｏｋｋｏ           ○   -   -
               cha2wav.x  v1.00     Ｙｏｋｋｏ           ○   -   -
               dash.x     v1.16     小笠原博之           -   △   ○
               dis.x      v2.06β   K.Abe                ○   △   ○
               float2.x   v1.00p4   T.Tommy              -   ○   ○  T.Tommy版float2.x
               fox.r      v0.9r2    別府政通             ×   ○   ○  run68の仕様により Ctrl-C の処理ができないが、その他はOK。
               gcc.x      v1.26     Mariko／FSF          ○   -   -
               gcc.x      v1.30     Mariko／FSF          -   ○   ○
               gcc2.x     v2.6.3    Charlie／FSF         -   △   △  --version, --verbose が動作する。コンパイルはできない。
               has.x      v3.08     Y.Nakamura           ○   -   -
               has.x      v3.09     Y.Nakamura           -   ○   ○
               hlk.x      v3.01     SALT                 ○   ○   ○
               ish        v1.12     M. Ishizuka          -   ○   ○
               jhack.x    v1.0.2    古場正行             -   ○   ○
               jrogue.x   v1.0      Kazumi Nasu／太田純  ○   -   -
               jrogue.x   v1.2      Kazumi Nasu／太田純  -   △   ○  画面書き換え（cursesライブラリの動作？）が変。
               rogue.x    v1.0      Kazumi Nasu／太田純  -   ○   ○  注)これは jrogue.x v1.2 用のプレイヤーメニュー
               rune.x     v1.40     中上 匠              -   △   △  dirコマンドの出力がまだおかしい。外部コマンドの実行はある程度可。
               lha.x      v2.13r47  岡田紀雄／吉崎栄泰   ○   ○   ○
               lx.r       v1.10     M.Harashino          ○   -   -
               lzx.x(F&I) v0.43.4β Ｆ＆Ｉ               ○   ○   ○
               lzx.x(ITA) v1.04     Itagaki Fumihiko     -   ○   ○
               mic.x      v1.08     milk.                ○   ○   ○  ファイル名の主部が8文字に満たない時、8文字になるまで空白が
                                                                       使用される。いまのところ WIN32 の仕様。
               pascal.x   v1.01     Chack'n & Silkia     ×   ○   ○
               pcm2adp.r  v1.02     GORRY.               ○   -   -
               pt4tobmp.x v1.10     Ｙｏｋｋｏ           ○   -   -
               wav2adp.x  v1.01     Ｙｏｋｋｏ           ○   -   -
               zmusic.x   v2.06     ZENJI SOFT           △   △   -  -Cオプションが動作する。
               ztom.x     v1.27     Y.Yagi.              ○   -   -
               ztom.x     v1.30     Y.Yagi.              ○   ○   -  引数ファイル名の指定形式によって、ファイルが見つからない場合がある。
  ------------ ---------- --------- ------------------- ---- ---- ---- ---------------------------------------
  福袋         as.x       v1.00     SHARP/Hudson         -   ○   ○
  (初代機のみ) lk.x       v1.00     SHARP/Hudson         -   ○   ○
               prncnf.x   v1.00     SHARP/Hudson         -   ×   ×
  ------------ ---------- --------- ------------------- ---- ---- ---- ---------------------------------------
  C compiler   ar.x       v1.00     SHARP/Hudson         ○   -   -
  PRO68K       as.x       v2.10     SHARP/Hudson         -   ○   ○
               bc.x       v1.00     SHARP/Hudson         ○   -   -
               bind.x     v1.00     SHARP/Hudson         -   △   △  ファイルを見つけてくれない。usageは出る。
               cv.x       v1.00     SHARP/Hudson         ○   -   -
               cv.x       v2.10     SHARP/Hudson         -   △   △  「変換できません」で実行できない。usageは出る。
               lk.x       v2.10     SHARP/Hudson         -   ○   ○  float2.x が必要。
  ------------ ---------- --------- ------------------- ---- ---- ---- ---------------------------------------

[EOF]
